<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
  <meta name="theme-color" content="#222">
  <meta name="generator" content="Hexo 4.2.1">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#222">
  <link rel="stylesheet" href="/css/main.css">
  <link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
  <link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
  <script src="/lib/pace/pace.min.js"></script>
  <script id="hexo-configurations">
    var NexT = window.NexT ||
    {};
    var CONFIG = {
      "hostname": "cuiqingcai.com",
      "root": "/",
      "scheme": "Pisces",
      "version": "7.8.0",
      "exturl": false,
      "sidebar":
      {
        "position": "right",
        "width": 360,
        "display": "post",
        "padding": 18,
        "offset": 12,
        "onmobile": false,
        "widgets": [
          {
            "type": "image",
            "name": "阿布云",
            "enable": false,
            "url": "https://www.abuyun.com/http-proxy/introduce.html",
            "src": "https://qiniu.cuiqingcai.com/88au8.jpg",
            "width": "100%"
      },
          {
            "type": "image",
            "name": "天验",
            "enable": true,
            "url": "https://tutorial.lengyue.video/?coupon=12ef4b1a-a3db-11ea-bb37-0242ac130002_cqx_850",
            "src": "https://qiniu.cuiqingcai.com/bco2a.png",
            "width": "100%"
      },
          {
            "type": "image",
            "name": "华为云",
            "enable": false,
            "url": "https://activity.huaweicloud.com/2020_618_promotion/index.html?bpName=5f9f98a29e2c40b780c1793086f29fe2&bindType=1&salesID=wangyubei",
            "src": "https://qiniu.cuiqingcai.com/y42ik.jpg",
            "width": "100%"
      },
          {
            "type": "image",
            "name": "张小鸡",
            "enable": false,
            "url": "http://www.zxiaoji.com/",
            "src": "https://qiniu.cuiqingcai.com/fm72f.png",
            "width": "100%"
      },
          {
            "type": "image",
            "name": "Luminati",
            "src": "https://qiniu.cuiqingcai.com/ikkq9.jpg",
            "url": "https://luminati-china.io/?affiliate=ref_5fbbaaa9647883f5c6f77095",
            "width": "100%",
            "enable": false
      },
          {
            "type": "image",
            "name": "IPIDEA",
            "url": "http://www.ipidea.net/?utm-source=cqc&utm-keyword=?cqc",
            "src": "https://qiniu.cuiqingcai.com/0ywun.png",
            "width": "100%",
            "enable": true
      },
          {
            "type": "tags",
            "name": "标签云",
            "enable": true
      },
          {
            "type": "categories",
            "name": "分类",
            "enable": true
      },
          {
            "type": "friends",
            "name": "友情链接",
            "enable": true
      },
          {
            "type": "hot",
            "name": "猜你喜欢",
            "enable": true
      }]
      },
      "copycode":
      {
        "enable": true,
        "show_result": true,
        "style": "mac"
      },
      "back2top":
      {
        "enable": true,
        "sidebar": false,
        "scrollpercent": true
      },
      "bookmark":
      {
        "enable": false,
        "color": "#222",
        "save": "auto"
      },
      "fancybox": false,
      "mediumzoom": false,
      "lazyload": false,
      "pangu": true,
      "comments":
      {
        "style": "tabs",
        "active": "gitalk",
        "storage": true,
        "lazyload": false,
        "nav": null,
        "activeClass": "gitalk"
      },
      "algolia":
      {
        "hits":
        {
          "per_page": 10
        },
        "labels":
        {
          "input_placeholder": "Search for Posts",
          "hits_empty": "We didn't find any results for the search: ${query}",
          "hits_stats": "${hits} results found in ${time} ms"
        }
      },
      "localsearch":
      {
        "enable": true,
        "trigger": "auto",
        "top_n_per_article": 10,
        "unescape": false,
        "preload": false
      },
      "motion":
      {
        "enable": false,
        "async": false,
        "transition":
        {
          "post_block": "bounceDownIn",
          "post_header": "slideDownIn",
          "post_body": "slideDownIn",
          "coll_header": "slideLeftIn",
          "sidebar": "slideUpIn"
        }
      },
      "path": "search.xml"
    };

  </script>
  <meta name="description" content="2020 年的新年过去了，去年也是在春节期间写的年终总结，今年也是时候再总结和反思一下我的 2019 年了。 总的来说，2019 我给自己的一句话总结为：新生活、新探索。 今年是我从学生时代正式迈入职场的第一年，也是体验了新的生活环境的第一年，没有预想到的变化有很多，接触的新的挑战也很多。这一年，我也在努力调整自己，去适应新的工作环境和生活节奏。但今年自己达成的面上的成就不算多，更多的时间在于学习">
  <meta property="og:type" content="article">
  <meta property="og:title" content="2019 年终总结：新生活、新探索">
  <meta property="og:url" content="https://cuiqingcai.com/8808.html">
  <meta property="og:site_name" content="静觅">
  <meta property="og:description" content="2020 年的新年过去了，去年也是在春节期间写的年终总结，今年也是时候再总结和反思一下我的 2019 年了。 总的来说，2019 我给自己的一句话总结为：新生活、新探索。 今年是我从学生时代正式迈入职场的第一年，也是体验了新的生活环境的第一年，没有预想到的变化有很多，接触的新的挑战也很多。这一年，我也在努力调整自己，去适应新的工作环境和生活节奏。但今年自己达成的面上的成就不算多，更多的时间在于学习">
  <meta property="og:locale" content="zh_CN">
  <meta property="article:published_time" content="2020-01-29T02:35:13.000Z">
  <meta property="article:modified_time" content="2021-12-18T13:11:11.525Z">
  <meta property="article:author" content="崔庆才">
  <meta property="article:tag" content="崔庆才">
  <meta property="article:tag" content="静觅">
  <meta property="article:tag" content="PHP">
  <meta property="article:tag" content="Java">
  <meta property="article:tag" content="Python">
  <meta property="article:tag" content="Spider">
  <meta property="article:tag" content="爬虫">
  <meta property="article:tag" content="Web">
  <meta property="article:tag" content="Kubernetes">
  <meta property="article:tag" content="深度学习">
  <meta property="article:tag" content="机器学习">
  <meta property="article:tag" content="数据分析">
  <meta property="article:tag" content="网络">
  <meta property="article:tag" content="IT">
  <meta property="article:tag" content="技术">
  <meta property="article:tag" content="博客">
  <meta name="twitter:card" content="summary">
  <link rel="canonical" href="https://cuiqingcai.com/8808.html">
  <script id="page-configurations">
    // https://hexo.io/docs/variables.html
    CONFIG.page = {
      sidebar: "",
      isHome: false,
      isPost: true,
      lang: 'zh-CN'
    };

  </script>
  <title>2019 年终总结：新生活、新探索 | 静觅</title>
  <meta name="google-site-verification" content="p_bIcnvirkFzG2dYKuNDivKD8-STet5W7D-01woA2fc" />
  <noscript>
    <style>
      .use-motion .brand,
      .use-motion .menu-item,
      .sidebar-inner,
      .use-motion .post-block,
      .use-motion .pagination,
      .use-motion .comments,
      .use-motion .post-header,
      .use-motion .post-body,
      .use-motion .collection-header
      {
        opacity: initial;
      }

      .use-motion .site-title,
      .use-motion .site-subtitle
      {
        opacity: initial;
        top: initial;
      }

      .use-motion .logo-line-before i
      {
        left: initial;
      }

      .use-motion .logo-line-after i
      {
        right: initial;
      }

    </style>
  </noscript>
  <link rel="alternate" href="/atom.xml" title="静觅" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container">
    <div class="headband"></div>
    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner">
        <div class="site-brand-container">
          <div class="site-nav-toggle">
            <div class="toggle" aria-label="切换导航栏">
              <span class="toggle-line toggle-line-first"></span>
              <span class="toggle-line toggle-line-middle"></span>
              <span class="toggle-line toggle-line-last"></span>
            </div>
          </div>
          <div class="site-meta">
            <a href="/" class="brand" rel="start">
              <span class="logo-line-before"><i></i></span>
              <h1 class="site-title">静觅 <span class="site-subtitle"> 崔庆才的个人站点 </span>
              </h1>
              <span class="logo-line-after"><i></i></span>
            </a>
          </div>
          <div class="site-nav-right">
            <div class="toggle popup-trigger">
              <i class="fa fa-search fa-fw fa-lg"></i>
            </div>
          </div>
        </div>
        <nav class="site-nav">
          <ul id="menu" class="main-menu menu">
            <li class="menu-item menu-item-home">
              <a href="/" rel="section">首页</a>
            </li>
            <li class="menu-item menu-item-archives">
              <a href="/archives/" rel="section">文章列表</a>
            </li>
            <li class="menu-item menu-item-tags">
              <a href="/tags/" rel="section">文章标签</a>
            </li>
            <li class="menu-item menu-item-categories">
              <a href="/categories/" rel="section">文章分类</a>
            </li>
            <li class="menu-item menu-item-about">
              <a href="/about/" rel="section">关于博主</a>
            </li>
            <li class="menu-item menu-item-message">
              <a href="/message/" rel="section">给我留言</a>
            </li>
            <li class="menu-item menu-item-search">
              <a role="button" class="popup-trigger">搜索 </a>
            </li>
          </ul>
        </nav>
        <div class="search-pop-overlay">
          <div class="popup search-popup">
            <div class="search-header">
              <span class="search-icon">
                <i class="fa fa-search"></i>
              </span>
              <div class="search-input-container">
                <input autocomplete="off" autocapitalize="off" placeholder="搜索..." spellcheck="false" type="search" class="search-input">
              </div>
              <span class="popup-btn-close">
                <i class="fa fa-times-circle"></i>
              </span>
            </div>
            <div id="search-result">
              <div id="no-result">
                <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
              </div>
            </div>
          </div>
        </div>
      </div>
    </header>
    <div class="back-to-top">
      <i class="fa fa-arrow-up"></i>
      <span>0%</span>
    </div>
    <div class="reading-progress-bar"></div>
    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div class="content post posts-expand">
            <article itemscope itemtype="http://schema.org/Article" class="post-block single" lang="zh-CN">
              <link itemprop="mainEntityOfPage" href="https://cuiqingcai.com/8808.html">
              <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
                <meta itemprop="image" content="/images/avatar.png">
                <meta itemprop="name" content="崔庆才">
                <meta itemprop="description" content="崔庆才的个人站点，记录生活的瞬间，分享学习的心得。">
              </span>
              <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
                <meta itemprop="name" content="静觅">
              </span>
              <header class="post-header">
                <h1 class="post-title" itemprop="name headline"> 2019 年终总结：新生活、新探索 </h1>
                <div class="post-meta">
                  <span class="post-meta-item">
                    <span class="post-meta-item-icon">
                      <i class="far fa-user"></i>
                    </span>
                    <span class="post-meta-item-text">作者</span>
                    <span><a href="/authors/崔庆才" class="author" itemprop="url" rel="index">崔庆才</a></span>
                  </span>
                  <span class="post-meta-item">
                    <span class="post-meta-item-icon">
                      <i class="far fa-calendar"></i>
                    </span>
                    <span class="post-meta-item-text">发表于</span>
                    <time title="创建时间：2020-01-29 10:35:13" itemprop="dateCreated datePublished" datetime="2020-01-29T10:35:13+08:00">2020-01-29</time>
                  </span>
                  <span class="post-meta-item">
                    <span class="post-meta-item-icon">
                      <i class="far fa-folder"></i>
                    </span>
                    <span class="post-meta-item-text">分类于</span>
                    <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                      <a href="/categories/%E6%8A%80%E6%9C%AF%E6%9D%82%E8%B0%88/" itemprop="url" rel="index"><span itemprop="name">技术杂谈</span></a>
                    </span>
                  </span>
                  <span id="/8808.html" class="post-meta-item leancloud_visitors" data-flag-title="2019 年终总结：新生活、新探索" title="阅读次数">
                    <span class="post-meta-item-icon">
                      <i class="fa fa-eye"></i>
                    </span>
                    <span class="post-meta-item-text">阅读次数：</span>
                    <span class="leancloud-visitors-count"></span>
                  </span>
                  <span class="post-meta-item" title="本文字数">
                    <span class="post-meta-item-icon">
                      <i class="far fa-file-word"></i>
                    </span>
                    <span class="post-meta-item-text">本文字数：</span>
                    <span>12k</span>
                  </span>
                  <span class="post-meta-item" title="阅读时长">
                    <span class="post-meta-item-icon">
                      <i class="far fa-clock"></i>
                    </span>
                    <span class="post-meta-item-text">阅读时长 &asymp;</span>
                    <span>11 分钟</span>
                  </span>
                </div>
              </header>
              <div class="post-body" itemprop="articleBody">
                <div class="advertisements">
                  <div class="item">
                    <a href="http://i0k.cn/4UUsd" target="_blank">
                      <img src="https://qiniu.cuiqingcai.com/dsdhf.jpg">
                    </a>
                  </div>
                </div>
                <p>2020 年的新年过去了，去年也是在春节期间写的年终总结，今年也是时候再总结和反思一下我的 2019 年了。 总的来说，2019 我给自己的一句话总结为：新生活、新探索。 今年是我从学生时代正式迈入职场的第一年，也是体验了新的生活环境的第一年，没有预想到的变化有很多，接触的新的挑战也很多。这一年，我也在努力调整自己，去适应新的工作环境和生活节奏。但今年自己达成的面上的成就不算多，更多的时间在于学习、自我适应和调整，同时一年里我也有了一些新的感悟。 所以，在此把我这一年的变化、思考和新一年的目标做一下总结，希望来年可以继续加油。</p>
                <h2 id="变化"><a href="#变化" class="headerlink" title="变化"></a>变化</h2>
                <h3 id="第一次正式工作"><a href="#第一次正式工作" class="headerlink" title="第一次正式工作"></a>第一次正式工作</h3>
                <p>2019 年 1 月份，我硕士毕业了，接下来就正式开始工作了。2019 年 3 月 1 日，我正式入职微软，在微软小冰部门，我换了一个新的小组，有了一群 Nice 的新同事。 我的工作的内容属于 AI Creation，不过偏全栈一点，会涉及到自然语言处理、图像处理、前端、后端等各个方面的技术。正式入职之后，我负责小组的这一个全新的探索方向。 怎么说呢？刚开始我接手这个项目的时候，基本上整个项目还是在实验阶段，我要做的就是把整个项目规范化、搭建一套完整的 End2End 的 Pipeline、检测模型、管理平台和服务器。我之前在实习阶段的时候没有接触过线上代码，不了解现在代码的一些逻辑和架构。所以刚开始的时候面对一些杂乱的实验数据、设计草稿、线上代码，面对这些一些需求，一段时间内真的是感觉不知道怎么办才好。那会儿我记得一直在梳理思路，在一点点 Debug 现有的代码的一些逻辑，然后和我的 Manager 和同事一起讨论实现的思路。 慢慢地，我逐渐也清楚了现有的代码和架构，知道了我可以具体怎么实现，期间我把自己的一些设计思路改了好几次，比如我记得有好几个 Pipeline 拆了又拆，有一些设计 Schema 改了好几次，最后慢慢稳定下来了，渐渐地，我把一些模型、Pipeline、管理平台、服务器慢慢搭建好了，现在我做的一些东西也上线并正式投入使用了。回想起来，刚开始真的挺难的，不过现在做成了，还是很有成就感的。 在这里真的要好好感谢我的 Manager 和同事们，他们对我的帮助很大。在讨论项目实现的过程中，我收获了很多新的想法。我承认我自己这个人并不是特别喜欢与人合作，倾向于坚持自己的想法，倾向于自己去把一件事去做完，所以我最开始可能更偏己见一点。但在讨论整个项目的过程中，我学到了，有些思路原来还可以这么想，原来还可以这么实现。真的，有些设计思路和想法我确实一开始没有想到，但经过讨论之后，确实学习到了很多技巧和方法，慢慢地，我的一些编程的思想也有了变化，我会有自己的想法，同时也倾向于把我的一些思路说给别人，看看别人怎么想的，在大多数情况下，我会想到更优的解决思路，即使没有，我也学到了一些新的思考方法或者知识点。另外在这期间，我的小组队伍也壮大了起来，我自己也作为小组长（算是）指导了几位新同事一起参与整个项目，在这期间我也悟到了一些合作或指导的一些经验，大家都非常给力，目前来说还是很不错的。 要说这一年的工作压力和强度的话，整个走下来其实还是不小的。在前期阶段，其实更多来自于项目本身的压力，因为有太多的东西需要做，同时需要学习和了解的新东西也有很多，当时也没有找到适合自己的工作节奏，算是“摸爬滚打”了好一阵。在后期阶段，也有一些新的挑战，比如要去思考哪些方向是对的，怎样和同事更好地协作一起优化一些功能点，当然也一直有新的技术需要学习。整体感觉上来，比我的实习期的工作强度大了非常非常多，可以说和实习期的工作强度是没法比的。 现在想想，实习的时候，我差不多半年时间写完了一本爬虫书，晚上还能和我的小伙伴们聚众开黑王者荣耀。现在？功能实现了吗？Bug 修完了吗？好了，滚去撸代码了。写书？开黑？一天，一晃就这么过去了。</p>
                <h3 id="公众号"><a href="#公众号" class="headerlink" title="公众号"></a>公众号</h3>
                <p>正式工作之后，发现自己打理公众号的时间比我预想中的要紧张许多，没错就是这个「进击的Coder」。 对于公众号的运营，我也慢慢地佛系了，在 2019 快年底的时候，我把我的公众号转给我的女朋友小马来运营了，不得不说她运营得非常好，会找一些很不错的技术文章帮我排版，帮我发布，我有原创文章我也会交给她帮我发一下，的确减轻了我不少的压力。她也有很多想法，写了一些原创，也会策划一些活动，后来，不少公众号的粉丝居然渐渐转成她的粉丝了？！我回来后，你们还认识我吗？ 说一下数据吧，写文章时，公众号粉丝数量为 <strong>57420</strong>，常读用户是 <strong>9857</strong>，平均阅读 <strong>3000</strong> 左右，算是技术号中比较普通的水平了，常读用户比例也不怎么高，而且对于我 2019 年的 Flag 10 万，还有挺大的差距，这个后文会详细说。 说说公众号这件事吧，为什么我这次单独把「常读用户」数据放出来了呢？因为现在其实粉丝数并不是那么重要的，常读用户才是更重要的。公众号在 2019 年做了一次大的改动，「信息流」是其一，「在看」是其二，另一个大的改动就是有了「常读的订阅号」这个功能，大家应该也都注意到了，它会出现在最上端，几个圆形的公众号头像，如果公众号有了消息，它会有一个绿色的小点，大多数情况下，然后我们就会点开看了，可以说对阅读量的帮助是很大的。对于信息流来说，如果我们发文的时机把握不好的话，很可能文章就会被冲淡在信息流里面再也找不见了。所以，常读用户的多少和阅读量有着很大的关系。这也是有一些公众号虽然粉丝很多，但是阅读量并不高的很大原因；同时也是一些公众号虽然粉丝少，但是阅读量一直很高的很大原因。 「在看」功能也是很重要的，当然这取决于文章质量了，如果文章质量高，「在看」多，大家从「朋友在看」入口进入到文章的的人也越多，阅读量自然也会高。 另外还有原创，大家可以看到很多原创率高的号主，阅读量都是很高的，因为原创，内容独特，见解到位，他们的公众号常读用户量和常读用户比率一般都是非常高的，阅读量自然就高了。另外公众平台对于原创也有一定的鼓励和推荐机制，帮助原创号主获得更多的流量。另外现在我观察到技术公众号的一个趋势，就是很多文章都转来转去，大多数公众号的原创率都是很低的，另外广告现在也越来越多（我也参与了），读者又不是傻子，在筛选一篇优质公众号文章越来越难的今天，读者会倾向于阅读原创率高或内容优质的公众号。那些没有原创能力或者内容质量不高的公众号，阅读量增长会非常困难，甚至于淹没于越来越大的公众号海洋之中。 所以，现在运营公众号，最重要的数据是什么？最直接的当然是平均阅读量，这可能直接关乎一个公众号值多少钱或者接到的广告值多少钱。平均阅读量更多取决于什么？「常读用户」和「在看」。所以一方面，我在运营的时候会更注意公众号的发文质量和频率，一定不能长时间不更新，否则万一公众号从「常读的订阅号」列表里面掉出去，就很难找回来了。另外我对于粉丝量其实并没有那么看重了，所以我也很少去参与互推的一些活动。 2019 年我发的文章一部分是原创的技术文，要写的话我会写好，把一些来龙去脉和原理都说清楚，保证文章的质量，但由于时间紧张，原创个人感觉发的并不多。另一部分是转载的一些觉得有价值的技术文，我会和小马一起去挑选一些我们认为还不错的技术文或时效新闻发给大家，希望读者能有所收获。最后就是广告了，2019 年接的广告其实说实话不少，当然接广告也基本上是为了恰口饭，如果大家看到了是广告标题，能帮着戳一戳进去加点阅读量我就非常感激不尽了。其他的互推或者抽奖送书等等活动，我很少很少参与了，一方面觉得意义并没有那么大，对读者也不友好。 我觉得公众号专注于提供优质的内容、见解和想法，这才是好的发展路子，我的涨粉速度肯定没有互推来得快，而且确实也因为我的个人原因对公众号精力投入不够，导致阅读量增长比较慢，但我觉得这是适合我的初衷的发展路子，也是我比较舒服的运营方式。所以，接下来我还是秉承的之前的运营理念，公众号的方向还会专注于技术，致力去提供优质的内容给大家。 另外我也有一些新的运营想法。我一直有关注一个公众号叫做「未闻Code」，公号主是「青南」，他是做网络爬虫方向的，也著有很不错的技术书籍，也在维护一个开源项目 GNE，即新闻网页正文通用抽取器，项目地址：<a href="https://github.com/kingname/GeneralNewsExtractor，可以实现新闻页面的自动化抽取，目前已经有" target="_blank" rel="noopener">https://github.com/kingname/GeneralNewsExtractor，可以实现新闻页面的自动化抽取，目前已经有</a> 1k 多个 Star，推荐大家关注下。他的公众号有一个我觉得很不错的运营模式，那就是「一日一技」，他会把一些总结或新学到的技能整理出来发到公众号上，有的文章内容可能并不长，可能就是记录自己学习或踩坑的过程，甚至可能就是一个个小的零碎的知识点，但我感觉还是很有价值的，读者反响也不错。而我之前在写文章的时候，我会必须要把一个知识点扩得很大，把知识点或项目的来龙去脉或者完整的使用流程写一篇长文再发出来，因此大家可以看到我的技术原创文一般都会显得比较完整甚至叫啰嗦，为写这篇文章，我可能要去搜罗各种资料，可能也去新学一些新的东西，这样也致使我写一篇文章耗费的时间也会比较长。所以，我想寻求一个转变，我想，比如某天我在工作中解决了一个什么问题，或者我学到了一个小的骚操作，或者我就学到了一个小的知识点，我想也把它写下来，把这件事稍微说明白就行，暂时不去把所有的涉及这个知识点的的东西完整总结。比如我今天刚学到了 Kubernetes 在部署时动态替换环境变量的骚操作，我就只把这个记录下来，分享给大家，不再去展开讲。这样可以提高我的产量，同时把我今天学到的或想法写下来与大家分享，可能文章比较短，可能知识点描述得不够全，但我觉得是一个不错的路子。后面我会尝试下这个方案，如果得到的反响不错的话，我会继续坚持。</p>
                <h3 id="开源"><a href="#开源" class="headerlink" title="开源"></a>开源</h3>
                <p>作为一名程序猿，比起刷抖音，我更喜欢逛 GitHub，同时自己也会喜欢写一些开源项目并发到 GitHub 上面，如果能收获一些 Star，心里会有很大的成就感。 先说一下目前的数据吧，我的 GitHub 地址是：<a href="https://github.com/Germey，目前粉丝数" target="_blank" rel="noopener">https://github.com/Germey，目前粉丝数</a> 4.9k，收获 Star 数约 4k，2019 年 Commits 数量 1053 次，目前主要维护了 Gerapy 和 ModelZoo 两个项目，还有一些其他的项目如 ProxyPool、CookiesPool 也有一些人在使用。 由于时间问题，2019 年我在开源这一方面的贡献并不好，Gerapy 和 ModelZoo 两个项目也有一段时间的停更，导致现在也一直不瘟不火，Star 数也一直不多。 我觉得能够有自己拿得出手的开源项目确实是一件很有成就感的事情，新的一年，我会投入更多的精力参与到上面来，目前还是会专注于 Gerapy 和 ModelZoo 两个项目上面来。同时随着学习和积累，可能还会酝酿出新的项目。新的一年，继续加油。</p>
                <h3 id="写作"><a href="#写作" class="headerlink" title="写作"></a>写作</h3>
                <p>关注我的读者可能知道我在 2018 年 4 月出版了一本《Python3网络爬虫开发实战》，这也是我写的第一本书，其目前销量已经远远超过我的预期，到现在为止不到两年时间，累积印刷 15 次，印刷量 7w 多，豆瓣评分 9.0 分，也已经被很多学校或培训机构当做教材或辅导书，这些都是我之前没有预料到的，同时这本书也为我带来了一笔可观的收入。 但免不了的，讲爬虫，网站不会是一成不变的，网站一改版，整个案例就跑不通了。这本书，现在挺多案例已经过期了，书稿的内容不好直接修改，我只能在 GitHub 上尽量去跟进修改，但对于一些初学者来说，是很不友好的。另外，爬虫技术日新月异，很多技术或框架已经过时了，另外也出现了一些新的技术和知识点，当时在写书的时候并没有提及到。 所以，我去年就跟编辑策划了《Python3网络爬虫开发实战》第二版的撰写。本次第二版相对于第一版来说，修订了过期的案例，补充了新的知识点。第二版为每个知识点的实战项目对接了针对性的练习平台，避免了案例过期的问题。另外主要增加了异步爬虫、JavaScript 逆向、App 逆向、智能网页解析、深度学习识别验证码、Kubernetes 运维及部署等知识点，同时各个爬虫知识点涉及到的请求、存储、解析、测试等工具也进行了丰富和更新。 到现在算是基本完稿了，现在已经在审稿了，但我还想修改和增加一部分内容。比如最近提议出来的修订过期案例的问题，这个问题很重要，不然不知道啥时候我书里的案例就又过期了，为此我自建了爬虫案例平台，项目在这里：<a href="https://github.com/Germey/Scrape，最近忙着迁移和开发，现在正在把一些案例修改到案例平台上面。其他的稿子差不多了，正在审核中。所以基本上我现在是边改边审的状态，也希望能提前出版的时间。我知道有些读者很急，也盼着第二版的出版" target="_blank" rel="noopener">https://github.com/Germey/Scrape，最近忙着迁移和开发，现在正在把一些案例修改到案例平台上面。其他的稿子差不多了，正在审核中。所以基本上我现在是边改边审的状态，也希望能提前出版的时间。我知道有些读者很急，也盼着第二版的出版</a>。 现在没几天就会有读者问我第二版什么时候出版呀？情况，就是上面这个样子，已经开始审稿了，可能还得几个月吧，争取 2020 上半年可以出来，如有消息，我一定第一时间通知大家。 当然写作也不仅仅是写书，也包括日常的积累。 我自己在平时的工作和学习的过程中也会记一些笔记。我现在把我所有的笔记都用 Typora 这个 MarkDown 编辑工具写下来，然后整理和同步到 GitHub 和 GitBook 上面，我分了好几个记事本，有技术类、生活类、书稿类、开源文档类，整理和总结了不少东西，挺多东西并没有公开发出来，原因我也在上文「公众号」一节提及了一下，但我也想寻求一个新的运营方式，所以我准备把一些自己整理的东西，即便是小的知识点，也都发出来，跟大家一起学习和探讨。 不怕被笑话「原来我这个知识点还不会呢」，我新学到的就发出来看。因为只有「改革开放」才能真正地进步，固步自封最终吃亏的还是自己。</p>
                <h3 id="知识"><a href="#知识" class="headerlink" title="知识"></a>知识</h3>
                <p>说到知识，今年来我个人觉得学习的还算及格，我学到的知识一方面来自于工作，一方面来自于平时生活。 稍微总结一下今年来都学了些什么吧：</p>
                <ul>
                  <li>C#、.NET。其实在实习期间我不接触线上代码，C#、.NET 并不常用。正式开始工作了，这个必须学起来了，因为一些 Service 必须要用它来搭。学了之后，确实觉得 C# 设计得真的很棒，很多特性和理念值得好好学习。</li>
                  <li>爬虫逆向。在 2019 年之前，我对爬虫逆向可以说基本不了解，因为在写第一版书那段期间，网站采取混淆或加密的不多，App 抓包基本都能抓得到。后来时代变了，网站现在你没有个混淆，基本就不是个合格的网站，很多 App 接口抓包也搞不到，或者一些接口加了很多加密参数。所以说 JavaScript 逆向和 App 逆向不学基本上就没法玩爬虫了。所以我也在开始学习和了解这一部分的内容，在 2019 下半年加入了夜幕团队，团队有几位搞逆向非常厉害的大佬，同时我们也合作出了一套 JavaScript 逆向课，另一方面也为了写书做准备。总之，收获很大，也非常感谢大家的指导和帮助。但由于这个技术比较敏感，担心发出来被对方寄律师函什么的，所以我也几乎不发文。不过现在我有了新的思路了，自建爬虫案例平台，所以等建好了，我会发一些关于逆向方面的文章的，大家敬请期待。</li>
                  <li>Kubernetes、DevOps。现在 DevOps 和 Kubernetes 基本上可以说是大势了，部署一把梭。在工作中我们也慢慢地把一些服务迁移到 Kubernetes 上面，为此我也自己摸索和搭建过 Kubernetes 集群，搞了一些 Service、数据库的搭建，DevOps 一套主要用 Azure Pipelines、GitHub Actions，是真香！现在我的几乎所有服务都在往 Kubernetes 上面迁，新的爬虫案例平台也用了 GitHub Actions 来实现自动部署。</li>
                  <li>深度学习。在 2019 年之前，我也有一些深度学习的基础，但 2019 年我在实现一些自己的开源项目 ModelZoo 的的时候，又学习了一些新的模型，把 ModelZoo 重新迁移到 TensorFlow 2.0 上面。另外在工作之余也学习了一些新的模型，如序列标注相关、图像识别相关。但最近我又有了新的想法，用了一段时间 TensorFlow 2.0 之后，感觉有些地方实现起来还是别扭，对接了 Keras 之后，调试也还是不太方便。经过与一些大佬的交流，决定准备转 PyTorch 了，这真可能是趋势，不知道我的感觉对不对。但选择比努力更重要吗不是？方向感觉不对，就要及时调整，没毛病。（逃</li>
                  <li>各种开源库。这些也不算系统的知识点了，单纯就是逛 GitHub 看到的，比如一些实用的类库，比如 typing、loguru、retrying、faker、airtest 等等，学了，顺带写一篇总结文，慢慢积累下来。</li>
                </ul>
                <p>总的来说，2019 学到的新东西还算不少，慢慢地我也摸清了我的技术路线，现在还会是 Python 主力的全栈方向，将来可能还会变，一些技术栈我会去慢慢补齐，我知道自己哪些不会，为了达成我的一些目标还需要去学什么。 另外在学习过程中，思考和总结是非常重要的。</p>
                <ul>
                  <li>遇到不会的，多去思考和搜索，实在不行求助别人。</li>
                  <li>解决了问题，记得复盘和梳理下来。</li>
                  <li>学习新知识，顺带把学到的整理和记录下来。</li>
                </ul>
                <p>个人觉得这样学习起来，效果还是不错的。新的一年，继续加油。 当然除了技术，我自己也在学一些其他的，比如英语，之前跟小马出去塞尔维亚玩了一趟，英语要么听不懂，要么说不出来，太难受了。现在上班路上，我会抽时间听一点 BBC，用的是网易云。大家都在用啥学英语啊？ 另外理财相关的知识，我也在了解，同时买了点基金试试水，不过我还觉得储备的知识还不够，还需要继续学习。</p>
                <h3 id="健身"><a href="#健身" class="headerlink" title="健身"></a>健身</h3>
                <p>这个话题，真的有点让我难以开口。因为这个健身，我真是做的太失败了，我一年几乎没有健身几次，加上吃太好，从 116 斤胖到了 141 斤。141 - 116 = 25，没错，我一年胖了 25 斤！ 一方面，小马带我吃的太好了，哈哈哈哈，我们几乎每周都会出去吃好吃的，另外她还会给我买各种零食和好吃的，家里的零食一箱箱永远吃不完。 有人说了，你胖了这么多，人家小马怎么瘦了呀？别找借口了。偷偷抹眼泪，说好一起变胖呢？ 另一方面，也是不运动，一坐一天，晚上还没啥空去健身房，日积月累，就成了这样子了，照片就不要看了，我不会给你们看的。 说到健身，小马几乎每周都会去跳舞或者去健身房，我偶尔周末会跟着去体验几节课，但是上完之后，在家就没有继续炼了。哎，也是确实没太有时间锻炼，也有一个原因就是太懒了，可能后者才是最主要的原因。 但这样下去我的体重就要收不住了。在年前的时候我立了 Flag，一周运动至少两次，主要是跑步，如果参与了一次健身也算，我成功坚持下来了。年后继续！ 我会变瘦的！ 没想到，短短一年，「减肥」这个词居然会落在了我的身上。</p>
                <h3 id="感情"><a href="#感情" class="headerlink" title="感情"></a>感情</h3>
                <p>嘿嘿，我和小马一起从 2018 跨到了 2020，在一起三年了（抖机灵。哈哈，其实我们已经在一起 449 天啦！总之和小马在一起的日子特别开心，以至于幸福肥了 25 斤（逃。 想分享的生活有太多，但是又觉得在这里公开秀恩爱有点不好意思，反正就是很幸福哈哈哈。比如一起出去吃好吃的、一起旅游、一起健身、一起拍照、一起画画、一起插玩具、一起玩游戏、一起去看展、一起穿情侣装。有时候我们一起吃到了好吃的就会一起高呼「卧槽这个好吃，卧槽这个也好吃，卧槽这个怎么这么好吃！」，有时候走在路上两人就像小孩子一样牵着手或者追来追去，有时候好长时间（一天）不见面，我们再见到对方就互相扑过去，我们很多时候会在对方面前表现得像个孩子或者像一只动物（猫？），我们每人的表情包已经全是「猫」和「狗」了，不多，也就一百多套吧。不好意思，不小心又秀了一下。 怎么说呢？我经常会在微博分享我们两人的生活。有人说我的微博已经从「互联网资讯博主」变成了「恋爱博主」，就是这么个感觉。本来我的书里面不是写了一节「Ajax 爬取微博」来教大家怎么学 Ajax 分析和爬取吗，结果大家爬下来了一堆狗粮，之后跟我说再也不学爬虫了。 我：？？？ 嗯，我也不知道他后来有没有再学，可能真的没有再学了吗？ 不过有时候我也会犯蠢，惹小马不开心或生气（但我们不会分手的，我也慢慢地从中学到了很多，我们的感情也变得越来越好了。昨天我看到知乎一个推荐「女生最想收到男生送的什么礼物？」，我看了看这都什么玩意，然后发给了小马，说我要是送你这些肯定会被分手了，小马看完，说我长大了，开心！看我是不是变得越来越懂你了呢。 新的一年，希望我们还会继续好好在一起呀！ 对了，朋友圈和微博没得刷了或者饿了的话，来刷刷我的微博「崔庆才丨静觅」吧（逃。</p>
                <h3 id="思考"><a href="#思考" class="headerlink" title="思考"></a>思考</h3>
                <p>关于思考，这是一个非常抽象的东西，看不见摸不着，但确实很多时候，某些事情思考的深度、广度决定了我们的高度。 在这一年来，我接触了很多人，了解了一些事。比如一个技术项目吧，不同的人对于一个项目思考的深度就不同。很多人可能就是，接到了一个任务，别人告诉他要做什么，怎么做，那他就做完就行了，然后就完事了。但有的人，接到这个任务，会首先想，我这是在做什么？为什么要这么做而不是那么做？做的时候怎样实现才是最佳的？做完了还能做点什么才能变得更好？他会对事情的来龙去脉了解的非常清楚，结束了再去复盘和思考。这也是我觉得很多人所欠缺的一些地方。我觉得人和人之间段位的差距就是这么拉开的。 有的人可能会觉得，考虑这么多，找这个麻烦干什么呢？这其实真不是自己找麻烦，思考的成本其实很低，我们用来思考的时间其实很多，比如路上、休息时、吃饭时、睡前等等。不怕思考浪费时间，怕的是不去思考。 我前几天跟一位非常好的朋友吃饭聊天。这位朋友，我真的很佩服他，我觉得他有很多程序员少有的一些思维，他在思考一些事情时会考虑非常全面，就像上文所提到的一样。比如我之前曾经跟他商量一个实现方案，他第一个问我的问题是，为什么你会这么想这么做？你的理由是什么？你打算怎么来实现？只要你能把我说得通，我就支持你这么做。比如一些方法论上的东西，他一直在思考和探索一些适合自己的生活、工作方式，会思考自己想要做什么、为了达成某个目标怎样做最好、怎样才是最佳实践，同时他也在不断的探索和试错中完善自己的方法论。我从他身上学到了很多，同时我觉得我自己跟他还有很大的差距，还是要多多加油啊。 所以，有时候，我们也需要停下来去思考，自己在做什么、为什么要这么做、怎样做最好，甚至需要去思考一下，自己是谁、从哪里来、要到哪里去。</p>
                <h3 id="合作"><a href="#合作" class="headerlink" title="合作"></a>合作</h3>
                <p>关于合作，今年我也体会到了很多，我的想法也变了许多。 怎么说呢，我自己原本是一个倾向于单枪匹马挑战一切的人，同时也不想去麻烦别人，比如一件事情，我习惯于包揽下来，自己去完成，有时候不想给别人添麻烦，有时候觉得交给别人不太放心或者担心做出来不符合我的心意。 慢慢地，在团队合作过程中，我意识到了，自己不是全能的，术业总会有专攻，总会有在某一方面比自己强的人。而且随着工作强度的变大，有些事情自己大包大揽真的有点力不从心。 两点体会吧。</p>
                <ul>
                  <li>第一，一个人并不是万能的。每个人不可能在所有的事情上做到极致，同时一个人的精力也是有限的。几乎没有人能像 Linus 一样几乎单枪匹马做出一个 Linux 内核，但你说 Linux 和杜兰特比打篮球，谁更厉害？</li>
                  <li>第二，总会有人在某个方面强过自己。随着接触的人和事越来越多，我发现就是有人在某个方面比自己强，或者思考的问题深入，或者完成的效果好。所以，首先不要因为某个方面不如别人而感到难过，有些事，可以放心交给别人去做，有时候结果可能甚至远超过自己的预期。当然这个有个前提，确实也得看人，去学会分辨一些靠谱和不靠谱的人。</li>
                </ul>
                <p>所以，现在我在工作中，一些功能和需求，我不会再像之前一样倾向于大包大揽，相信自己的一些靠谱的合作伙伴，每个人直接好好分配，合作的时候一起交流、探讨。同时我自己也指导着两位同事，有些任务我会交给他们去做，不会再因为不放心和给别人添麻烦而全把任务归到自己。有时候真的，最终可能还会有意想不到的效果，或者在跟别人交流的过程中学到一些新的东西。 所以，Be Open，这是我的一点体会。</p>
                <h3 id="目标"><a href="#目标" class="headerlink" title="目标"></a>目标</h3>
                <p>关于这个，我体会也很深。 我回顾了自己一年以来没有做和已经做的事情，发现了这么一个现象：有件事我确实给自己定目标了，比如我要学习 Go 语言。然后我就把这个加到了我的待做清单里面，没有给他设置时间限度，也没有具体规划我怎样去做，哪个时间去学什么，反而自己的时间被一些零碎的或更紧急的事情占据了，最后我一整年都没有学 Go。我仔细想想，其实也并不是没有时间，有时候，我在某个时间段，确实是完全闲着的，比如我周六的时候，可能会躺在床上玩手机，一玩一上午，但那会啥也不想做，也没想好要那会要做什么。 我反思了一下自己，还是因为自己给自己的规划不明确。 主要有这么两点：</p>
                <ul>
                  <li>第一，某些目标我设置的太大，没有详细去规划什么时间做什么。比如学 Go 语言，我应该去好好思考一下，我要在多久时间内达成这个目标，我应该什么时间去做什么，我应该去细分到每一章节，在最开始的时候可能没必要所有的都分的那么细，但真正下一步要做的，一定要列得详细再详细。 比如说，我要三个月内学好 Go 语言，我可以先思考，三个月，我要学多少知识模块，比如有十个知识模块，那么我就规划每一个模块大体什么时候完成，每个模块列到自己的 Todo List 里面，设定好期限，注意，一定要设置好期限，不然真的会一拖再拖！然后，最开始我可能没必要把大把的时间把每个模块里面的每个小知识点都拆分好，但前面的一定要列好，比如我十个模块，我最开始的一两个模块一定要再拆分规划好，同时再设定好每个小知识点的时间。要是前面的模块学完了，再去抽时间规划下一个模块就好了。</li>
                  <li>第二，没有提前设定好每个小目标。我反思了，为什么有的时候我不知道要干些啥呢？原因就是我没有提前规划好我第二天或者接下来的时间做什么。所以我后面决定改变一下，我会为自己提前做好规划，比如我第二天做什么，以及另外一个很重要的，规划一些零碎的时间做什么，比如学习慕课网的一个视频，或者去学习某一节英语课，或者去完成某项健身活动，把时间都利用起来。</li>
                </ul>
                <h3 id="感悟"><a href="#感悟" class="headerlink" title="感悟"></a>感悟</h3>
                <p>另外，这一年中，我也悟出了一些做事的原则或者生活上的感悟，我把一些体会比较深的写下来。</p>
                <ul>
                  <li>别自嗨，多往外看看。有时候我们可能新学到了一个知识点，或者新做成了一个功能，就觉得自己很了不起了，但殊不知，可能别人已经把这个知识点当做必备知识，或者我们做出来的这个功能拿到外面去，其实是完全被爆的。所以，不要闭门造车，多出去看看，多了解下别人是怎么做的，多了解下这个的前沿和天花板已经到了什么地步，站在巨人的肩膀上，往往会走得更远。</li>
                  <li>别沉浸于过去。有时候我就会沉浸或满足于自己已经取得的一些成就，去“啃老”，但这样是不对的。不论我现在已经取得了什么成就，我都不应该沉浸进去。要把每一天当成 0 起点去对待，和自己的前一天去比较，每天进步一点，这样日积月累，进步就显现出来了。</li>
                  <li>多反思和复盘。就像刚才说的，我们每个人可能一天上班完了，就回家睡大觉了，然后第二天接着去上班。但有多少人每天晚上回问，自己今天到底进步了什么，即使没有进步，也反思一下自己今天为什么没有进步，怎样来解决这个现状。所以，我觉得每天去反思和复盘是很重要的。睡前的十几二十分钟，去思考一下，今天做成了什么、没有做成什么、下一步该怎么做，我觉得还是非常有价值的。</li>
                  <li>不能打包票的不要许诺。很多事情，我们要量力而行。有时候我答应过别人一件事情，可是到了时候，我发现自己没有时间完成或者没有能力去完成，最后去跟别人说要拖延时间或者干脆不做了。这其实对别人来说也很不好，而且本来可能是帮别人一个忙，反而可能会成为倒忙。所以，一些事情，在答应之前，好好想想到底有没有问题，如果不能打包票，不要轻易许诺。</li>
                  <li>一些小事也别以为很简单，重要的是细节。一件事，做的时候不要眼高手低，本来以为很简单的一件事，觉得分分钟就能做完，结果做完了发现很多细节没有把握好，出了很多错误。比如我记得之前我答应小马改个文章，本来以为很简单的东西，心想不就是改个这个吗，当时改的时候还在想着别的东西，改的时候并没有那么认真，结果导致有些错别字，最后被打回来返工，使得事情变得更糟。我不止一次犯过这种毛病了，犯错之后我也深深自责，为什么这么简单的事也能错。所以，一些小事也不要以为很简单，要认认真真去做，一些细节要把握好。</li>
                </ul>
                <p>还有一些别的感悟，有的感悟更深刻了，不过之前都写过了，我就不再写了，大家如果感兴趣可以看看我去年的年度总结或者之前我的一些分享。 好了，一些变化和反思我就暂时总结这么多了，不足的地方还有很多，也希望来年我能变得更好，无愧于自己的努力。</p>
                <h2 id="目标-1"><a href="#目标-1" class="headerlink" title="目标"></a>目标</h2>
                <p>照例，新的 2020 年，我给自己立一点 Flag 吧！明年再来继续总结和验收。</p>
                <h3 id="工作"><a href="#工作" class="headerlink" title="工作"></a>工作</h3>
                <p>工作继续好好努力，这是最重要的，现在我规划了一些新的尝试的方向，愿明年能够顺利实现和上线。</p>
                <h3 id="健身减肥"><a href="#健身减肥" class="headerlink" title="健身减肥"></a>健身减肥</h3>
                <p>新的一年，每个工作周，健身至少 2 次。体重减重到 130 斤并一直维持，减掉赘肉和小肚子。</p>
                <h3 id="读书"><a href="#读书" class="headerlink" title="读书"></a>读书</h3>
                <p>给自己定一个读书计划，读完自己规划的一些书，每一本写出自己的感悟。</p>
                <h3 id="日-周总结"><a href="#日-周总结" class="headerlink" title="日/周总结"></a>日/周总结</h3>
                <p>每日复盘和总结，写到日记本中，每周末对该周的内容进行复盘和总结。</p>
                <h3 id="爬虫书"><a href="#爬虫书" class="headerlink" title="爬虫书"></a>爬虫书</h3>
                <p>《Python3网络爬虫开发实战（第二版）》书籍完成，书籍争取在上半年发售。另外还规划了配套视频，按照计划顺利出来。</p>
                <h3 id="公众号-1"><a href="#公众号-1" class="headerlink" title="公众号"></a>公众号</h3>
                <p>公众号我就不按照粉丝量来设定目标了，如果「常读用户」机制一直存在的话，新的一年，我希望公众号常读用户数目可以达到 2w，平均阅读量达到 6000，即翻倍。 另外公众号会尝试新的运营思路，我会写一些小的知识点发到公众号上，如果反响不错，新的一年会一直保持。</p>
                <h3 id="开源-1"><a href="#开源-1" class="headerlink" title="开源"></a>开源</h3>
                <p>继续维护自己的项目 Gerapy 和 ModelZoo。 Gerapy 把已经规划好的「可视化爬虫」、「智能解析」、「监控分析」等功能完善，Star 数破 3k。 ModelZoo 将其迁移到 PyTorch，并对接好当前规划的前沿主流模型，总 Star 数破 1k。</p>
                <h3 id="理财"><a href="#理财" class="headerlink" title="理财"></a>理财</h3>
                <p>学习一些理财知识，记录成自己的一套方法论。</p>
                <h3 id="感情-1"><a href="#感情-1" class="headerlink" title="感情"></a>感情</h3>
                <p>当然是和小马好好在一起！让我们的感情变得更好！</p>
                <h3 id="收入"><a href="#收入" class="headerlink" title="收入"></a>收入</h3>
                <p>这个自己给自己定了一个目标，这个具体数字我不说啦，朝着我的小米之家梦进发！</p>
              </div>
              <div class="reward-container">
                <div></div>
                <button onclick="var qr = document.getElementById('qr'); qr.style.display = (qr.style.display === 'none') ? 'block' : 'none';"> 打赏 </button>
                <div id="qr" style="display: none;">
                  <div style="display: inline-block;">
                    <img src="/images/wechatpay.jpg" alt="崔庆才 微信支付">
                    <p>微信支付</p>
                  </div>
                  <div style="display: inline-block;">
                    <img src="/images/alipay.jpg" alt="崔庆才 支付宝">
                    <p>支付宝</p>
                  </div>
                </div>
              </div>
              <footer class="post-footer">
                <div class="post-nav">
                  <div class="post-nav-item">
                    <a href="/8703.html" rel="prev" title="新书发售 限时折扣｜《Python3 反爬虫原理与绕过实战》">
                      <i class="fa fa-chevron-left"></i> 新书发售 限时折扣｜《Python3 反爬虫原理与绕过实战》 </a>
                  </div>
                  <div class="post-nav-item">
                    <a href="/8811.html" rel="next" title="Kubernetes 批量部署 Splash 服务"> Kubernetes 批量部署 Splash 服务 <i class="fa fa-chevron-right"></i>
                    </a>
                  </div>
                </div>
              </footer>
            </article>
          </div>
          <div class="comments" id="gitalk-container"></div>
          <script>
            window.addEventListener('tabs:register', () =>
            {
              let
              {
                activeClass
              } = CONFIG.comments;
              if (CONFIG.comments.storage)
              {
                activeClass = localStorage.getItem('comments_active') || activeClass;
              }
              if (activeClass)
              {
                let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
                if (activeTab)
                {
                  activeTab.click();
                }
              }
            });
            if (CONFIG.comments.storage)
            {
              window.addEventListener('tabs:click', event =>
              {
                if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
                let commentClass = event.target.classList[1];
                localStorage.setItem('comments_active', commentClass);
              });
            }

          </script>
        </div>
        <div class="toggle sidebar-toggle">
          <span class="toggle-line toggle-line-first"></span>
          <span class="toggle-line toggle-line-middle"></span>
          <span class="toggle-line toggle-line-last"></span>
        </div>
        <aside class="sidebar">
          <div class="sidebar-inner">
            <ul class="sidebar-nav motion-element">
              <li class="sidebar-nav-toc"> 文章目录 </li>
              <li class="sidebar-nav-overview"> 站点概览 </li>
            </ul>
            <!--noindex-->
            <div class="post-toc-wrap sidebar-panel">
              <div class="post-toc motion-element">
                <ol class="nav">
                  <li class="nav-item nav-level-2"><a class="nav-link" href="#变化"><span class="nav-number">1.</span> <span class="nav-text">变化</span></a>
                    <ol class="nav-child">
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#第一次正式工作"><span class="nav-number">1.1.</span> <span class="nav-text">第一次正式工作</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#公众号"><span class="nav-number">1.2.</span> <span class="nav-text">公众号</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#开源"><span class="nav-number">1.3.</span> <span class="nav-text">开源</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#写作"><span class="nav-number">1.4.</span> <span class="nav-text">写作</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#知识"><span class="nav-number">1.5.</span> <span class="nav-text">知识</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#健身"><span class="nav-number">1.6.</span> <span class="nav-text">健身</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#感情"><span class="nav-number">1.7.</span> <span class="nav-text">感情</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#思考"><span class="nav-number">1.8.</span> <span class="nav-text">思考</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#合作"><span class="nav-number">1.9.</span> <span class="nav-text">合作</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#目标"><span class="nav-number">1.10.</span> <span class="nav-text">目标</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#感悟"><span class="nav-number">1.11.</span> <span class="nav-text">感悟</span></a></li>
                    </ol>
                  </li>
                  <li class="nav-item nav-level-2"><a class="nav-link" href="#目标-1"><span class="nav-number">2.</span> <span class="nav-text">目标</span></a>
                    <ol class="nav-child">
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#工作"><span class="nav-number">2.1.</span> <span class="nav-text">工作</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#健身减肥"><span class="nav-number">2.2.</span> <span class="nav-text">健身减肥</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#读书"><span class="nav-number">2.3.</span> <span class="nav-text">读书</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#日-周总结"><span class="nav-number">2.4.</span> <span class="nav-text">日&#x2F;周总结</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#爬虫书"><span class="nav-number">2.5.</span> <span class="nav-text">爬虫书</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#公众号-1"><span class="nav-number">2.6.</span> <span class="nav-text">公众号</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#开源-1"><span class="nav-number">2.7.</span> <span class="nav-text">开源</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#理财"><span class="nav-number">2.8.</span> <span class="nav-text">理财</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#感情-1"><span class="nav-number">2.9.</span> <span class="nav-text">感情</span></a></li>
                      <li class="nav-item nav-level-3"><a class="nav-link" href="#收入"><span class="nav-number">2.10.</span> <span class="nav-text">收入</span></a></li>
                    </ol>
                  </li>
                </ol>
              </div>
            </div>
            <!--/noindex-->
            <div class="site-overview-wrap sidebar-panel">
              <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
                <img class="site-author-image" itemprop="image" alt="崔庆才" src="/images/avatar.png">
                <p class="site-author-name" itemprop="name">崔庆才</p>
                <div class="site-description" itemprop="description">崔庆才的个人站点，记录生活的瞬间，分享学习的心得。</div>
              </div>
              <div class="site-state-wrap motion-element">
                <nav class="site-state">
                  <div class="site-state-item site-state-posts">
                    <a href="/archives/">
                      <span class="site-state-item-count">608</span>
                      <span class="site-state-item-name">日志</span>
                    </a>
                  </div>
                  <div class="site-state-item site-state-categories">
                    <a href="/categories/">
                      <span class="site-state-item-count">24</span>
                      <span class="site-state-item-name">分类</span></a>
                  </div>
                  <div class="site-state-item site-state-tags">
                    <a href="/tags/">
                      <span class="site-state-item-count">156</span>
                      <span class="site-state-item-name">标签</span></a>
                  </div>
                </nav>
              </div>
              <div class="links-of-author motion-element">
                <span class="links-of-author-item">
                  <a href="https://github.com/Germey" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;Germey" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
                </span>
                <span class="links-of-author-item">
                  <a href="mailto:cqc@cuiqingcai.com.com" title="邮件 → mailto:cqc@cuiqingcai.com.com" rel="noopener" target="_blank"><i class="fa fa-envelope fa-fw"></i>邮件</a>
                </span>
                <span class="links-of-author-item">
                  <a href="https://weibo.com/cuiqingcai" title="微博 → https:&#x2F;&#x2F;weibo.com&#x2F;cuiqingcai" rel="noopener" target="_blank"><i class="fab fa-weibo fa-fw"></i>微博</a>
                </span>
                <span class="links-of-author-item">
                  <a href="https://www.zhihu.com/people/Germey" title="知乎 → https:&#x2F;&#x2F;www.zhihu.com&#x2F;people&#x2F;Germey" rel="noopener" target="_blank"><i class="fa fa-magic fa-fw"></i>知乎</a>
                </span>
              </div>
            </div>
            <div style=" width: 100%;" class="sidebar-panel sidebar-panel-image sidebar-panel-active">
              <a href="https://tutorial.lengyue.video/?coupon=12ef4b1a-a3db-11ea-bb37-0242ac130002_cqx_850" target="_blank" rel="noopener">
                <img src="https://qiniu.cuiqingcai.com/bco2a.png" style=" width: 100%;">
              </a>
            </div>
            <div style=" width: 100%;" class="sidebar-panel sidebar-panel-image sidebar-panel-active">
              <a href="http://www.ipidea.net/?utm-source=cqc&utm-keyword=?cqc" target="_blank" rel="noopener">
                <img src="https://qiniu.cuiqingcai.com/0ywun.png" style=" width: 100%;">
              </a>
            </div>
            <div class="sidebar-panel sidebar-panel-tags sidebar-panel-active">
              <h4 class="name"> 标签云 </h4>
              <div class="content">
                <a href="/tags/2048/" style="font-size: 10px;">2048</a> <a href="/tags/API/" style="font-size: 10px;">API</a> <a href="/tags/Bootstrap/" style="font-size: 11.25px;">Bootstrap</a> <a href="/tags/CDN/" style="font-size: 10px;">CDN</a> <a href="/tags/CQC/" style="font-size: 10px;">CQC</a> <a href="/tags/CSS/" style="font-size: 10px;">CSS</a> <a href="/tags/CSS-%E5%8F%8D%E7%88%AC%E8%99%AB/" style="font-size: 10px;">CSS 反爬虫</a> <a href="/tags/CV/" style="font-size: 10px;">CV</a> <a href="/tags/Django/" style="font-size: 10px;">Django</a> <a href="/tags/Eclipse/" style="font-size: 11.25px;">Eclipse</a> <a href="/tags/FTP/" style="font-size: 10px;">FTP</a> <a href="/tags/Git/" style="font-size: 10px;">Git</a> <a href="/tags/GitHub/" style="font-size: 13.75px;">GitHub</a> <a href="/tags/HTML5/" style="font-size: 10px;">HTML5</a> <a href="/tags/Hexo/" style="font-size: 10px;">Hexo</a> <a href="/tags/IT/" style="font-size: 10px;">IT</a> <a href="/tags/JSP/" style="font-size: 10px;">JSP</a> <a href="/tags/JavaScript/" style="font-size: 10px;">JavaScript</a> <a href="/tags/K8s/" style="font-size: 10px;">K8s</a> <a href="/tags/LOGO/" style="font-size: 10px;">LOGO</a> <a href="/tags/Linux/" style="font-size: 10px;">Linux</a> <a href="/tags/MIUI/" style="font-size: 10px;">MIUI</a> <a href="/tags/MongoDB/" style="font-size: 10px;">MongoDB</a> <a href="/tags/Mysql/" style="font-size: 10px;">Mysql</a> <a href="/tags/NBA/" style="font-size: 10px;">NBA</a> <a href="/tags/PHP/" style="font-size: 11.25px;">PHP</a> <a href="/tags/PS/" style="font-size: 10px;">PS</a> <a href="/tags/Pathlib/" style="font-size: 10px;">Pathlib</a> <a href="/tags/PhantomJS/" style="font-size: 10px;">PhantomJS</a> <a href="/tags/Python/" style="font-size: 15px;">Python</a> <a href="/tags/Python3/" style="font-size: 12.5px;">Python3</a> <a href="/tags/Pythonic/" style="font-size: 10px;">Pythonic</a> <a href="/tags/QQ/" style="font-size: 10px;">QQ</a> <a href="/tags/Redis/" style="font-size: 10px;">Redis</a> <a href="/tags/SAE/" style="font-size: 10px;">SAE</a> <a href="/tags/SSH/" style="font-size: 10px;">SSH</a> <a href="/tags/SVG/" style="font-size: 10px;">SVG</a> <a href="/tags/Scrapy/" style="font-size: 10px;">Scrapy</a> <a href="/tags/Scrapy-redis/" style="font-size: 10px;">Scrapy-redis</a> <a href="/tags/Scrapy%E5%88%86%E5%B8%83%E5%BC%8F/" style="font-size: 10px;">Scrapy分布式</a> <a href="/tags/Selenium/" style="font-size: 10px;">Selenium</a> <a href="/tags/TKE/" style="font-size: 10px;">TKE</a> <a href="/tags/Ubuntu/" style="font-size: 11.25px;">Ubuntu</a> <a href="/tags/VS-Code/" style="font-size: 10px;">VS Code</a> <a href="/tags/Vs-Code/" style="font-size: 10px;">Vs Code</a> <a href="/tags/Vue/" style="font-size: 11.25px;">Vue</a> <a href="/tags/Webpack/" style="font-size: 10px;">Webpack</a> <a href="/tags/Windows/" style="font-size: 10px;">Windows</a> <a href="/tags/Winpcap/" style="font-size: 10px;">Winpcap</a> <a href="/tags/WordPress/" style="font-size: 13.75px;">WordPress</a> <a href="/tags/Youtube/" style="font-size: 11.25px;">Youtube</a> <a href="/tags/android/" style="font-size: 10px;">android</a> <a href="/tags/ansible/" style="font-size: 10px;">ansible</a> <a href="/tags/cocos2d-x/" style="font-size: 10px;">cocos2d-x</a> <a href="/tags/e6/" style="font-size: 10px;">e6</a> <a href="/tags/fitvids/" style="font-size: 10px;">fitvids</a> <a href="/tags/git/" style="font-size: 11.25px;">git</a> <a href="/tags/json/" style="font-size: 10px;">json</a> <a href="/tags/js%E9%80%86%E5%90%91/" style="font-size: 10px;">js逆向</a> <a href="/tags/kubernetes/" style="font-size: 10px;">kubernetes</a> <a href="/tags/log/" style="font-size: 10px;">log</a> <a href="/tags/logging/" style="font-size: 10px;">logging</a> <a href="/tags/matlab/" style="font-size: 11.25px;">matlab</a> <a href="/tags/python/" style="font-size: 20px;">python</a> <a href="/tags/pytube/" style="font-size: 11.25px;">pytube</a> <a href="/tags/pywin32/" style="font-size: 10px;">pywin32</a> <a href="/tags/style/" style="font-size: 10px;">style</a> <a href="/tags/tomcat/" style="font-size: 10px;">tomcat</a> <a href="/tags/ubuntu/" style="font-size: 10px;">ubuntu</a> <a href="/tags/uwsgi/" style="font-size: 10px;">uwsgi</a> <a href="/tags/vsftpd/" style="font-size: 10px;">vsftpd</a> <a href="/tags/wamp/" style="font-size: 10px;">wamp</a> <a href="/tags/wineQQ/" style="font-size: 10px;">wineQQ</a> <a href="/tags/%E4%B8%83%E7%89%9B/" style="font-size: 11.25px;">七牛</a> <a href="/tags/%E4%B8%8A%E6%B5%B7/" style="font-size: 10px;">上海</a> <a href="/tags/%E4%B8%AA%E4%BA%BA%E7%BD%91%E7%AB%99/" style="font-size: 10px;">个人网站</a> <a href="/tags/%E4%B8%BB%E9%A2%98/" style="font-size: 10px;">主题</a> <a href="/tags/%E4%BA%91%E4%BA%A7%E5%93%81/" style="font-size: 10px;">云产品</a> <a href="/tags/%E4%BA%91%E5%AD%98%E5%82%A8/" style="font-size: 10px;">云存储</a> <a href="/tags/%E4%BA%AC%E4%B8%9C%E4%BA%91/" style="font-size: 10px;">京东云</a> <a href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/" style="font-size: 12.5px;">人工智能</a> <a href="/tags/%E4%BB%A3%E7%90%86/" style="font-size: 10px;">代理</a> <a href="/tags/%E4%BB%A3%E7%A0%81/" style="font-size: 10px;">代码</a> <a href="/tags/%E4%BB%A3%E7%A0%81%E5%88%86%E4%BA%AB%E5%9B%BE/" style="font-size: 10px;">代码分享图</a> <a href="/tags/%E4%BC%98%E5%8C%96/" style="font-size: 10px;">优化</a> <a href="/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/" style="font-size: 10px;">位运算</a> <a href="/tags/%E5%85%AC%E4%BC%97%E5%8F%B7/" style="font-size: 10px;">公众号</a> <a href="/tags/%E5%88%86%E4%BA%AB/" style="font-size: 10px;">分享</a> <a href="/tags/%E5%88%86%E5%B8%83%E5%BC%8F/" style="font-size: 10px;">分布式</a> <a href="/tags/%E5%88%9B%E4%B8%9A/" style="font-size: 10px;">创业</a> <a href="/tags/%E5%89%8D%E7%AB%AF/" style="font-size: 12.5px;">前端</a> <a href="/tags/%E5%8D%9A%E5%AE%A2/" style="font-size: 10px;">博客</a> <a href="/tags/%E5%8E%9F%E7%94%9FAPP/" style="font-size: 10px;">原生APP</a> <a href="/tags/%E5%8F%8D%E7%88%AC%E8%99%AB/" style="font-size: 12.5px;">反爬虫</a> <a href="/tags/%E5%91%BD%E4%BB%A4/" style="font-size: 10px;">命令</a> <a href="/tags/%E5%93%8D%E5%BA%94%E5%BC%8F%E5%B8%83%E5%B1%80/" style="font-size: 10px;">响应式布局</a> <a href="/tags/%E5%9E%83%E5%9C%BE%E9%82%AE%E4%BB%B6/" style="font-size: 10px;">垃圾邮件</a> <a href="/tags/%E5%9F%9F%E5%90%8D%E7%BB%91%E5%AE%9A/" style="font-size: 10px;">域名绑定</a> <a href="/tags/%E5%A4%8D%E7%9B%98/" style="font-size: 10px;">复盘</a> <a href="/tags/%E5%A4%A7%E4%BC%97%E7%82%B9%E8%AF%84/" style="font-size: 10px;">大众点评</a> <a href="/tags/%E5%AD%97%E4%BD%93%E5%8F%8D%E7%88%AC%E8%99%AB/" style="font-size: 10px;">字体反爬虫</a> <a href="/tags/%E5%AD%97%E7%AC%A6%E9%97%AE%E9%A2%98/" style="font-size: 10px;">字符问题</a> <a href="/tags/%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95/" style="font-size: 10px;">学习方法</a> <a href="/tags/%E5%AE%89%E5%8D%93/" style="font-size: 10px;">安卓</a> <a href="/tags/%E5%AE%9E%E7%94%A8/" style="font-size: 10px;">实用</a> <a href="/tags/%E5%B0%81%E9%9D%A2/" style="font-size: 10px;">封面</a> <a href="/tags/%E5%B4%94%E5%BA%86%E6%89%8D/" style="font-size: 18.75px;">崔庆才</a> <a href="/tags/%E5%B7%A5%E5%85%B7/" style="font-size: 12.5px;">工具</a> <a href="/tags/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/" style="font-size: 10px;">开发工具</a> <a href="/tags/%E5%BE%AE%E8%BD%AF/" style="font-size: 10px;">微软</a> <a href="/tags/%E6%80%9D%E8%80%83/" style="font-size: 10px;">思考</a> <a href="/tags/%E6%89%8B%E6%9C%BA%E8%AE%BF%E9%97%AE/" style="font-size: 10px;">手机访问</a> <a href="/tags/%E6%95%99%E7%A8%8B/" style="font-size: 10px;">教程</a> <a href="/tags/%E6%95%99%E8%82%B2/" style="font-size: 10px;">教育</a> <a href="/tags/%E6%96%B0%E4%B9%A6/" style="font-size: 12.5px;">新书</a> <a href="/tags/%E6%96%B9%E6%B3%95%E8%AE%BA/" style="font-size: 10px;">方法论</a> <a href="/tags/%E6%97%85%E6%B8%B8/" style="font-size: 10px;">旅游</a> <a href="/tags/%E6%97%A5%E5%BF%97/" style="font-size: 10px;">日志</a> <a href="/tags/%E6%9A%97%E6%97%B6%E9%97%B4/" style="font-size: 10px;">暗时间</a> <a href="/tags/%E6%9D%9C%E5%85%B0%E7%89%B9/" style="font-size: 11.25px;">杜兰特</a> <a href="/tags/%E6%A1%8C%E9%9D%A2/" style="font-size: 10px;">桌面</a> <a href="/tags/%E6%AD%8C%E5%8D%95/" style="font-size: 10px;">歌单</a> <a href="/tags/%E6%B1%9F%E5%8D%97/" style="font-size: 10px;">江南</a> <a href="/tags/%E6%B8%B8%E6%88%8F/" style="font-size: 10px;">游戏</a> <a href="/tags/%E7%84%A6%E8%99%91/" style="font-size: 10px;">焦虑</a> <a href="/tags/%E7%88%AC%E8%99%AB/" style="font-size: 16.25px;">爬虫</a> <a href="/tags/%E7%88%AC%E8%99%AB%E4%B9%A6%E7%B1%8D/" style="font-size: 11.25px;">爬虫书籍</a> <a href="/tags/%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/" style="font-size: 10px;">环境变量</a> <a href="/tags/%E7%94%9F%E6%B4%BB%E7%AC%94%E8%AE%B0/" style="font-size: 10px;">生活笔记</a> <a href="/tags/%E7%99%BB%E5%BD%95/" style="font-size: 10px;">登录</a> <a href="/tags/%E7%9F%A5%E4%B9%8E/" style="font-size: 10px;">知乎</a> <a href="/tags/%E7%9F%AD%E4%BF%A1/" style="font-size: 10px;">短信</a> <a href="/tags/%E7%9F%AD%E4%BF%A1%E9%AA%8C%E8%AF%81%E7%A0%81/" style="font-size: 10px;">短信验证码</a> <a href="/tags/%E7%AC%94%E8%AE%B0%E8%BD%AF%E4%BB%B6/" style="font-size: 10px;">笔记软件</a> <a href="/tags/%E7%AF%AE%E7%BD%91/" style="font-size: 10px;">篮网</a> <a href="/tags/%E7%BA%B8%E5%BC%A0/" style="font-size: 10px;">纸张</a> <a href="/tags/%E7%BB%84%E4%BB%B6/" style="font-size: 10px;">组件</a> <a href="/tags/%E7%BD%91%E7%AB%99/" style="font-size: 10px;">网站</a> <a href="/tags/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/" style="font-size: 11.25px;">网络爬虫</a> <a href="/tags/%E7%BE%8E%E5%AD%A6/" style="font-size: 10px;">美学</a> <a href="/tags/%E8%82%89%E5%A4%B9%E9%A6%8D/" style="font-size: 10px;">肉夹馍</a> <a href="/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/" style="font-size: 10px;">腾讯云</a> <a href="/tags/%E8%87%AA%E5%BE%8B/" style="font-size: 10px;">自律</a> <a href="/tags/%E8%A5%BF%E5%B0%91%E7%88%B7/" style="font-size: 10px;">西少爷</a> <a href="/tags/%E8%A7%86%E9%A2%91/" style="font-size: 10px;">视频</a> <a href="/tags/%E8%B0%B7%E6%AD%8C%E9%AA%8C%E8%AF%81%E7%A0%81/" style="font-size: 10px;">谷歌验证码</a> <a href="/tags/%E8%BF%90%E8%90%A5/" style="font-size: 10px;">运营</a> <a href="/tags/%E8%BF%9C%E7%A8%8B/" style="font-size: 10px;">远程</a> <a href="/tags/%E9%80%86%E5%90%91/" style="font-size: 10px;">逆向</a> <a href="/tags/%E9%85%8D%E7%BD%AE/" style="font-size: 10px;">配置</a> <a href="/tags/%E9%87%8D%E8%A3%85/" style="font-size: 10px;">重装</a> <a href="/tags/%E9%98%BF%E6%9D%9C/" style="font-size: 10px;">阿杜</a> <a href="/tags/%E9%9D%99%E8%A7%85/" style="font-size: 17.5px;">静觅</a> <a href="/tags/%E9%A2%A0%E8%A6%86/" style="font-size: 10px;">颠覆</a> <a href="/tags/%E9%A3%9E%E4%BF%A1/" style="font-size: 10px;">飞信</a> <a href="/tags/%E9%B8%BF%E8%92%99/" style="font-size: 10px;">鸿蒙</a>
              </div>
              <script>
                const tagsColors = ['#00a67c', '#5cb85c', '#d9534f', '#567e95', '#b37333', '#f4843d', '#15a287']
                const tagsElements = document.querySelectorAll('.sidebar-panel-tags .content a')
                tagsElements.forEach((item) =>
                {
                  item.style.backgroundColor = tagsColors[Math.floor(Math.random() * tagsColors.length)]
                })

              </script>
            </div>
            <div class="sidebar-panel sidebar-panel-categories sidebar-panel-active">
              <h4 class="name"> 分类 </h4>
              <div class="content">
                <ul class="category-list">
                  <li class="category-list-item"><a class="category-list-link" href="/categories/C-C/">C/C++</a><span class="category-list-count">23</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/HTML/">HTML</a><span class="category-list-count">14</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Java/">Java</a><span class="category-list-count">5</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/JavaScript/">JavaScript</a><span class="category-list-count">26</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Linux/">Linux</a><span class="category-list-count">15</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Markdown/">Markdown</a><span class="category-list-count">1</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Net/">Net</a><span class="category-list-count">4</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Other/">Other</a><span class="category-list-count">39</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/PHP/">PHP</a><span class="category-list-count">27</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Paper/">Paper</a><span class="category-list-count">2</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/Python/">Python</a><span class="category-list-count">261</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/TypeScript/">TypeScript</a><span class="category-list-count">2</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E4%B8%AA%E4%BA%BA%E5%B1%95%E7%A4%BA/">个人展示</a><span class="category-list-count">1</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E4%B8%AA%E4%BA%BA%E6%97%A5%E8%AE%B0/">个人日记</a><span class="category-list-count">9</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E4%B8%AA%E4%BA%BA%E8%AE%B0%E5%BD%95/">个人记录</a><span class="category-list-count">4</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E4%B8%AA%E4%BA%BA%E9%9A%8F%E7%AC%94/">个人随笔</a><span class="category-list-count">15</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/">安装配置</a><span class="category-list-count">59</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E6%8A%80%E6%9C%AF%E6%9D%82%E8%B0%88/">技术杂谈</a><span class="category-list-count">88</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E6%9C%AA%E5%88%86%E7%B1%BB/">未分类</a><span class="category-list-count">1</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E7%94%9F%E6%B4%BB%E7%AC%94%E8%AE%B0/">生活笔记</a><span class="category-list-count">1</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E7%A6%8F%E5%88%A9%E4%B8%93%E5%8C%BA/">福利专区</a><span class="category-list-count">6</span></li>
                  <li class="category-list-item"><a class="category-list-link" href="/categories/%E8%81%8C%E4%BD%8D%E6%8E%A8%E8%8D%90/">职位推荐</a><span class="category-list-count">2</span></li>
                </ul>
              </div>
            </div>
            <div class="sidebar-panel sidebar-panel-friends sidebar-panel-active">
              <h4 class="name"> 友情链接 </h4>
              <ul class="friends">
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/j2dub.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.findhao.net/" target="_blank" rel="noopener">FindHao</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/ou6mm.jpg">
                  </span>
                  <span class="link">
                    <a href="https://diygod.me/" target="_blank" rel="noopener">DIYgod</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/6apxu.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.51dev.com/" target="_blank" rel="noopener">IT技术社区</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://www.jankl.com/img/titleshu.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.jankl.com/" target="_blank" rel="noopener">liberalist</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/bqlbs.png">
                  </span>
                  <span class="link">
                    <a href="http://www.urselect.com/" target="_blank" rel="noopener">优社电商</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/8s88c.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.yuanrenxue.com/" target="_blank" rel="noopener">猿人学</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/2wgg5.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.yunlifang.cn/" target="_blank" rel="noopener">云立方</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/shwr6.png">
                  </span>
                  <span class="link">
                    <a href="http://lanbing510.info/" target="_blank" rel="noopener">冰蓝</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/blvoh.jpg">
                  </span>
                  <span class="link">
                    <a href="https://lengyue.me/" target="_blank" rel="noopener">冷月</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="http://qianxunclub.com/favicon.png">
                  </span>
                  <span class="link">
                    <a href="http://qianxunclub.com/" target="_blank" rel="noopener">千寻啊千寻</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/0044u.jpg">
                  </span>
                  <span class="link">
                    <a href="http://kodcloud.com/" target="_blank" rel="noopener">可道云</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/ygnpn.jpg">
                  </span>
                  <span class="link">
                    <a href="http://www.kunkundashen.cn/" target="_blank" rel="noopener">坤坤大神</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/22uv1.png">
                  </span>
                  <span class="link">
                    <a href="http://www.cenchong.com/" target="_blank" rel="noopener">岑冲博客</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/ev9kl.png">
                  </span>
                  <span class="link">
                    <a href="http://www.zxiaoji.com/" target="_blank" rel="noopener">张小鸡</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://www.503error.com/favicon.ico">
                  </span>
                  <span class="link">
                    <a href="https://www.503error.com/" target="_blank" rel="noopener">张志明个人博客</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/x714o.jpg">
                  </span>
                  <span class="link">
                    <a href="http://www.hubwiz.com/" target="_blank" rel="noopener">汇智网</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/129d8.png">
                  </span>
                  <span class="link">
                    <a href="https://www.bysocket.com/" target="_blank" rel="noopener">泥瓦匠BYSocket</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://www.xiongge.club/favicon.ico">
                  </span>
                  <span class="link">
                    <a href="https://www.xiongge.club/" target="_blank" rel="noopener">熊哥club</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/3w4fe.png">
                  </span>
                  <span class="link">
                    <a href="https://zerlong.com/" target="_blank" rel="noopener">知语</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/44hxf.png">
                  </span>
                  <span class="link">
                    <a href="http://redstonewill.com/" target="_blank" rel="noopener">红色石头</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/8g1fk.jpg">
                  </span>
                  <span class="link">
                    <a href="http://www.laodong.me/" target="_blank" rel="noopener">老董博客</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/wkaus.jpg">
                  </span>
                  <span class="link">
                    <a href="https://zhaoshuai.me/" target="_blank" rel="noopener">碎念</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/pgo0r.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.chenwenguan.com/" target="_blank" rel="noopener">陈文管的博客</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/kk82a.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.lxlinux.net/" target="_blank" rel="noopener">良许Linux教程网</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/lj0t2.jpg">
                  </span>
                  <span class="link">
                    <a href="https://tanqingbo.cn/" target="_blank" rel="noopener">IT码农</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/i8cdr.png">
                  </span>
                  <span class="link">
                    <a href="https://junyiseo.com/" target="_blank" rel="noopener">均益个人博客</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/chwv2.png">
                  </span>
                  <span class="link">
                    <a href="https://brucedone.com/" target="_blank" rel="noopener">大鱼的鱼塘</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/2y43o.png">
                  </span>
                  <span class="link">
                    <a href="http://bbs.nightteam.cn/" target="_blank" rel="noopener">夜幕爬虫安全论坛</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/zvc3w.jpg">
                  </span>
                  <span class="link">
                    <a href="https://www.weishidong.com/" target="_blank" rel="noopener">韦世东的技术专栏</a>
                  </span>
                </li>
                <li class="friend">
                  <span class="logo">
                    <img src="https://qiniu.cuiqingcai.com/ebudy.jpg">
                  </span>
                  <span class="link">
                    <a href="https://chuanjiabing.com/" target="_blank" rel="noopener">穿甲兵技术社区</a>
                  </span>
                </li>
              </ul>
            </div>
          </div>
        </aside>
        <div id="sidebar-dimmer"></div>
      </div>
    </main>
    <footer class="footer">
      <div class="footer-inner">
        <div class="copyright"> &copy; <span itemprop="copyrightYear">2021</span>
          <span class="with-love">
            <i class="fa fa-heart"></i>
          </span>
          <span class="author" itemprop="copyrightHolder">崔庆才丨静觅</span>
          <span class="post-meta-divider">|</span>
          <span class="post-meta-item-icon">
            <i class="fa fa-chart-area"></i>
          </span>
          <span title="站点总字数">2.6m</span>
          <span class="post-meta-divider">|</span>
          <span class="post-meta-item-icon">
            <i class="fa fa-coffee"></i>
          </span>
          <span title="站点阅读时长">39:54</span>
        </div>
        <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://pisces.theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Pisces</a> 强力驱动 </div>
        <div class="beian"><a href="https://beian.miit.gov.cn/" rel="noopener" target="_blank">京ICP备18015597号-1 </a>
        </div>
        <script>
          (function ()
          {
            function leancloudSelector(url)
            {
              url = encodeURI(url);
              return document.getElementById(url).querySelector('.leancloud-visitors-count');
            }

            function addCount(Counter)
            {
              var visitors = document.querySelector('.leancloud_visitors');
              var url = decodeURI(visitors.id);
              var title = visitors.dataset.flagTitle;
              Counter('get', '/classes/Counter?where=' + encodeURIComponent(JSON.stringify(
              {
                url
              }))).then(response => response.json()).then((
              {
                results
              }) =>
              {
                if (results.length > 0)
                {
                  var counter = results[0];
                  leancloudSelector(url).innerText = counter.time + 1;
                  Counter('put', '/classes/Counter/' + counter.objectId,
                  {
                    time:
                    {
                      '__op': 'Increment',
                      'amount': 1
                    }
                  }).catch(error =>
                  {
                    console.error('Failed to save visitor count', error);
                  });
                }
                else
                {
                  Counter('post', '/classes/Counter',
                  {
                    title,
                    url,
                    time: 1
                  }).then(response => response.json()).then(() =>
                  {
                    leancloudSelector(url).innerText = 1;
                  }).catch(error =>
                  {
                    console.error('Failed to create', error);
                  });
                }
              }).catch(error =>
              {
                console.error('LeanCloud Counter Error', error);
              });
            }

            function showTime(Counter)
            {
              var visitors = document.querySelectorAll('.leancloud_visitors');
              var entries = [...visitors].map(element =>
              {
                return decodeURI(element.id);
              });
              Counter('get', '/classes/Counter?where=' + encodeURIComponent(JSON.stringify(
              {
                url:
                {
                  '$in': entries
                }
              }))).then(response => response.json()).then((
              {
                results
              }) =>
              {
                for (let url of entries)
                {
                  let target = results.find(item => item.url === url);
                  leancloudSelector(url).innerText = target ? target.time : 0;
                }
              }).catch(error =>
              {
                console.error('LeanCloud Counter Error', error);
              });
            }
            let
            {
              app_id,
              app_key,
              server_url
            } = {
              "enable": true,
              "app_id": "6X5dRQ0pnPWJgYy8SXOg0uID-gzGzoHsz",
              "app_key": "ziLDVEy73ne5HtFTiGstzHMS",
              "server_url": "https://6x5drq0p.lc-cn-n1-shared.com",
              "security": false
            };

            function fetchData(api_server)
            {
              var Counter = (method, url, data) =>
              {
                return fetch(`${api_server}/1.1${url}`,
                {
                  method,
                  headers:
                  {
                    'X-LC-Id': app_id,
                    'X-LC-Key': app_key,
                    'Content-Type': 'application/json',
                  },
                  body: JSON.stringify(data)
                });
              };
              if (CONFIG.page.isPost)
              {
                if (CONFIG.hostname !== location.hostname) return;
                addCount(Counter);
              }
              else if (document.querySelectorAll('.post-title-link').length >= 1)
              {
                showTime(Counter);
              }
            }
            let api_server = app_id.slice(-9) !== '-MdYXbMMI' ? server_url : `https://${app_id.slice(0, 8).toLowerCase()}.api.lncldglobal.com`;
            if (api_server)
            {
              fetchData(api_server);
            }
            else
            {
              fetch('https://app-router.leancloud.cn/2/route?appId=' + app_id).then(response => response.json()).then((
              {
                api_server
              }) =>
              {
                fetchData('https://' + api_server);
              });
            }
          })();

        </script>
      </div>
      <div class="footer-stat">
        <span id="cnzz_stat_icon_1279355174"></span>
        <script type="text/javascript">
          document.write(unescape("%3Cspan id='cnzz_stat_icon_1279355174'%3E%3C/span%3E%3Cscript src='https://v1.cnzz.com/z_stat.php%3Fid%3D1279355174%26online%3D1%26show%3Dline' type='text/javascript'%3E%3C/script%3E"));

        </script>
      </div>
    </footer>
  </div>
  <script src="//cdn.jsdelivr.net/npm/animejs@3.2.1/lib/anime.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js"></script>
  <script src="/js/utils.js"></script>
  <script src="/.js"></script>
  <script src="/js/schemes/pisces.js"></script>
  <script src="/.js"></script>
  <script src="/js/next-boot.js"></script>
  <script src="/.js"></script>
  <script>
    (function ()
    {
      var canonicalURL, curProtocol;
      //Get the <link> tag
      var x = document.getElementsByTagName("link");
      //Find the last canonical URL
      if (x.length > 0)
      {
        for (i = 0; i < x.length; i++)
        {
          if (x[i].rel.toLowerCase() == 'canonical' && x[i].href)
          {
            canonicalURL = x[i].href;
          }
        }
      }
      //Get protocol
      if (!canonicalURL)
      {
        curProtocol = window.location.protocol.split(':')[0];
      }
      else
      {
        curProtocol = canonicalURL.split(':')[0];
      }
      //Get current URL if the canonical URL does not exist
      if (!canonicalURL) canonicalURL = window.location.href;
      //Assign script content. Replace current URL with the canonical URL
      ! function ()
      {
        var e = /([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,
          r = canonicalURL,
          t = document.referrer;
        if (!e.test(r))
        {
          var n = (String(curProtocol).toLowerCase() === 'https') ? "https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif" : "//api.share.baidu.com/s.gif";
          t ? (n += "?r=" + encodeURIComponent(document.referrer), r && (n += "&l=" + r)) : r && (n += "?l=" + r);
          var i = new Image;
          i.src = n
        }
      }(window);
    })();

  </script>
  <script src="/js/local-search.js"></script>
  <script src="/.js"></script>
  <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css">
  <script>
    NexT.utils.loadComments(document.querySelector('#gitalk-container'), () =>
    {
      NexT.utils.getScript('//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', () =>
      {
        var gitalk = new Gitalk(
        {
          clientID: '4c86ce1d7c4fbb3b277c',
          clientSecret: '4927beb0f90e2c07e66c99d9d2529cf3eb8ac8e4',
          repo: 'Blog',
          owner: 'germey',
          admin: ['germey'],
          id: '5d9bed0b4128caf63aa284322795c0b3',
          language: 'zh-CN',
          distractionFreeMode: true
        });
        gitalk.render('gitalk-container');
      }, window.Gitalk);
    });

  </script>
</body>

</html>
